﻿

namespace Mulala.Cavan.Application.MainBoundedContext.NannyModule
{
    using System;
    using System.Collections.Generic;
    using System.Linq;
    using System.Text;
    using Mulala.Cavan.Application.Seedwork;
    using Mulala.Cavan.Domain.MainBoundedContext.NannyModule;
    using Mulala.Cavan.Domain.MainBoundedContext.SearchModule;
    using Mulala.Cavan.Domain.Seedwork;
    using Mulala.Cavan.Domain.MainBoundedContext.AttachmentModule;

    public interface INannyAppService : IBaseAppService<Nanny, NannySearch>
    {
        BoolGenericResult<Nanny> AddNannyByCorporation(Nanny addedNanny);

        BoolGenericResult<Attachment> UpdateNannyAvatar(Nanny changedNanny, string fileUrl, string fileName);

        BoolGenericResult<NannyStatus> UpdateNannyVipStatus(Nanny changedNanny, bool isVip, int vipValidMonth = 0);

        BoolGenericResult<NannyStatus> UpdateNannyOnlineStatus(Nanny changedNanny, bool isOnLine);

        BoolGenericResult<NannyStatus> UpdateNannyBidStatus(Nanny changedNanny, bool canBid);

        BoolGenericResult<NannyStatus> UpdateNannyRecommendStatus(Nanny changedNanny, bool isRecommend, int recommendValidMonth = 0);

        BoolGenericResult<NannyStatus> UpdateNannyRefreshTime(Nanny changedNanny);

        BoolGenericResult<Nanny> UpdateNannyWorkingStatus(Nanny changedNanny, bool isWorking);

        IList<Nanny> GetNanniesByKeyword(string keyword, int currentPage, out long total);

        Nanny GetNannyById(int id);

        BoolGenericResult<Attachment> UpdateNannyPhoto(Nanny changedNanny, int photoID, string fileUrl, string fileName);
    }
}
